package org.jeecg.modules.prodorder.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.jeecg.modules.prodorder.entity.ProductionOrderInfo;
import org.jeecg.modules.prodorder.vo.OpenBomVO;
import org.jeecg.modules.prodorder.vo.OpenProdOrderVO;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
 * @Description: 生产工单
 * @Date:   2021-09-09
 * @Version: V1.0
 */
public interface ProductionOrderInfoMapper extends BaseMapper<ProductionOrderInfo> {

	/**
	 * 编辑节点状态
	 * @param id
	 * @param status
	 */
	void updateTreeNodeStatus(@Param("id") String id,@Param("status") String status);

	/**
	 * 通过订单id查询拟生成的开单单列表
	 * @param orderId
	 * @return
	 */
	List<OpenProdOrderVO> queryOpenListByOrderId(@Param("orderId") String orderId,@Param("styleId") String styleId);

	/**
	 * 通过订单id查询金的物料分析列表
	 * @param orderId
	 * @return
	 */
	List<OpenBomVO> queryGoldBomListByOrderId(@Param("orderId") String orderId,@Param("styleId") String styleId);
	
	/**
	 * 通过订单id查询配石的物料分析列表
	 * @param orderId
	 * @return
	 */
	List<OpenBomVO> queryStoneBomListByOrderId(@Param("orderId") String orderId,@Param("styleId") String styleId);
	
	/**
	 * 通过订单id查询配件的物料分析列表
	 * @param orderId
	 * @return
	 */
	List<OpenBomVO> queryAccessoryBomListByOrderId(@Param("orderId") String orderId,@Param("styleId") String styleId);


	/**
	 * 查询某个父ID下的最大拆分页
	 * @param pid
	 * @return
	 */
	@Select("select max(sn) from production_order_info where pid = #{pid}")
	String getMaxSnByPID(@Param("pid") String pid);
	
	/**
	 * 查询某个订单ID下的最大拆分页
	 * @param orderInfoId
	 * @return
	 */
	@Select("select max(sn) from production_order_info where order_info_id = #{orderInfoId}")
	String getMaxSnByOrderInfoId(@Param("orderInfoId") String orderInfoId);
}
